\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{algorithm}
\usepackage{algorithmic}
\usepackage{stmaryrd}

% algorithm-related
\renewcommand{\algorithmicrequire}{\textbf{\small INPUTS: }}
\renewcommand{\algorithmicensure}{\textbf{\small OUTPUTS: }}
\def\INPUT#1{\STATE\algorithmicrequire{#1}}
\def\OUTPUT#1{\STATE\algorithmicensure{#1}}

\newcommand{\irule}[2]%
    {\mkern-2mu\displaystyle\frac{#1}{\vphantom{,}#2}\mkern-2mu}
\def\medair{\hspace*{0.7cm}}
\def\air{\hspace*{1.0cm}}
\def\implies{\Rightarrow}
\def\fun{\rightarrow}
\def\parfun{\rightharpoonup}
\def\bigmid{\;\mid\;}
\def\la{\langle}
\def\ra{\rangle}
\def\lb{\llbracket}
\def\rb{\rrbracket}
\def\state#1{\la #1 \ra}
\def\pset#1{2^{#1}}

\newtheorem{theorem}{Theorem}
\newtheorem{defn}[theorem]{Definition}
\newtheorem{corollary}[theorem]{Corollary}
\newtheorem{proposition}[theorem]{Proposition}
\newtheorem{lemma}[theorem]{Lemma}
\newcommand{\qed}{$\Box$}
\newenvironment{proof}{\begin{trivlist}
\item[\hskip\labelsep{\bf Proof:}]}
{$\hfill\Box$\end{trivlist}}


\newcommand{\mn}[1]{
	\begin{center}
	\fbox{\begin{minipage}{3.0in}{\bf MN:} {\rm #1}\end{minipage}}
	\end{center}
}

